
  'use strict';

  // 获取数据库引用
  const db = uniCloud.database();
  // 定义 settings 表的引用
  const settingsCollection = db.collection('settings');

  exports.main = async (event, context) => {
    const { action } = event;

    switch (action) {
      case 'getPublicSettings':
        return getPublicSettings();
      default:
        return {
          code: 403,
          message: '请求 action 不合法'
        };
    }
  };

  /**
   * 获取公共配置
   * 这是一个公开接口，无需权限校验
   * @returns {object} 包含等级信息的配置
   */
  async function getPublicSettings() {
    try {
      // 通常 settings 集合中只有一个文档
      const settings = await settingsCollection.limit(1).get();

      if (!settings.data || settings.data.length === 0) {
        return {
          code: 404,
          message: '未找到任何配置信息'
        };
      }

      // 只返回公开且必要的信息，例如 levels
      const publicData = {
        levels: settings.data[0].levels || []
      };

      return {
        code: 0,
        message: '获取成功',
        data: publicData
      };

    } catch (error) {
      console.error('getPublicSettings error:', error);
      return {
        code: 500,
        message: '服务器内部错误，获取配置失败'
      };
    }
  }